package com.hmaill.item.service.impl;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hmaill.common.dto.PageDTO;
import com.hmaill.item.mapper.ItemMapper;
import com.hmaill.item.service.IItemService;
import com.hmaill.pojo.Item;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;


@Service
public class ItemService extends ServiceImpl<ItemMapper, Item> implements IItemService {



    /**
     * 分页查询商品表
     * @param page
     * @param size
     * @return
     */
    @Override
    public PageDTO<Item> getItem(Integer page, Integer size) {
        //1.设置分页参数
        Page<Item> itemPage = new Page<>(page, size);
        //2.去数据库分页查询
        this.page(itemPage);
        //3.封装数据并返回
        PageDTO<Item> itemPageDTO = new PageDTO<>(itemPage.getTotal(), itemPage.getRecords());
        return itemPageDTO;
    }

    /**
     * 实现商品添加功能
     *
     * @param item
     */
    @Override
    public void saveData(Item item) {
        if (item != null) {
            item.setCreateTime(new Date());
            save(item);
        }
    }

    /**
     * 更新商品状态
     * @param id
     * @param status
     */
    @Override
    public void renew(Long id, Integer status) {
        //1.根据id查询数据
        Item item = this.getOne(Wrappers.<Item>lambdaQuery().eq(Item::getId, id));
        //2.将数据的值进行更改
        item.setStatus(status);
        item.setUpdateTime(new Date());
        this.updateById(item);
    }

    /**
     * 更新商品
     * @param item
     */
    @Override
    public void upDataItem(Item item) {
        if (item != null) {
            item.setUpdateTime(new Date());
            updateById(item);
        }
    }

    /**
     * 删除商品
     * @param id
     */
    @Override
    public void deleteItem(Long id) {
        removeById(id);
    }
}
